home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 1.iso / toolbox / documents / ELF / sproc1.c < prev   
Encoding:
C/C++ Source or Header  |  1996-11-11  |  683 b   |  37 lines

  1. /* file sproc1.c */ 
  2. #include <sys/types.h> 
  3. #include <unistd.h> 
  4. #include <sys/prctl.h> 
  5. #include <stdio.h> 
  6. #include <stdlib.h> 
  7. #include <signal.h>
  8. #define SIZE 3 
  9. int foo1[SIZE]; 
  10. volatile int waiting = 1;
  11.  
  12. void r1(void *val) {
  13.     int i,loc=*(int*)val; 
  14.     pid_t pid = getpid(); 
  15.     while(waiting);
  16.     for(i=0;i<SIZE;i++) foo1[i] = loc;
  17.     for(i=0;i<SIZE;i++) { 
  18.         printf("pid %d, foo1[%d] = %d\n",pid,i,foo1[i]); 
  19.     } 
  20. }
  21.  
  22. void main(void) {
  23.     int i; 
  24.     int d[SIZE] = {0,1,2};
  25.     for(i=0;i<SIZE;i++) { 
  26.         if (-1==sproc(r1,PR_SALL,(void*)&d[i])) { 
  27.             printf("sproc failed\n"); 
  28.             if (kill(0,9)==-1) 
  29.                 printf("kill failed\n"); 
  30.         } 
  31.     }
  32.     sginap(50); 
  33.     waiting = 0; 
  34.     sginap(200);
  35.     exit(0); 
  36. }
  37.